#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/3/13 15:01
# @Author  : Swper
# @Site    : 
# @File    : models.py
# @Software: PyCharm
from app.exts import db
from datetime import datetime

#权限
class Auth(db.Model):
    __tablename__ = 'auth'
    id = db.Column(db.Integer,primary_key=True)      #编号
    name = db.Column(db.String(100),unique=True)     #名称
    url = db.Column(db.String(255),unique=True)      #地址
    addtime = db.Column(db.DateTime,index=True,default=datetime.utcnow) #添加时间


    def __repr__(self):
        return "<Auth %r>" % self.name


#角色
class Role(db.Model):
    __tablename__ = 'role'
    id = db.Column(db.Integer,primary_key=True)    #编号
    name = db.Column(db.String(100),unique=True)   #名称
    auths = db.Column(db.String(600))
    addtime = db.Column(db.DateTime,index=True,default=datetime.utcnow)   #添加时间

    def __repr__(self):
        return "<Role %r>" % self.name

#管理员
class Admin(db.Model):
    __tablename__ = 'admin'
    id = db.Column(db.Integer,primary_key=True)    #编号
    name = db.Column(db.String(100),unique=True)   #管理员账号
    pwd = db.Column(db.String(255))                #管理员密码
    is_super = db.Column(db.SmallInteger)          #是否为超级管理员，0为超级管理员
    status = db.Column(db.String(1))              #状态0为激活，1为禁用
    role_id = db.Column(db.Integer,db.ForeignKey('role.id'))   #所属角色
    addtime = db.Column(db.DateTime,index=True,default=datetime.now())   #添加时间
    adminlogs = db.relationship("Adminlog",backref="admin")   #管理员登陆日志
    # oplogs = db.relationship("Oplog",backref="admin")        #管理员操作日志

    def __repr__(self):
        return "<Admin %r>" % self.name

    def check_pwd(self,pwd):
        from werkzeug.security import check_password_hash
        return check_password_hash(self.pwd, pwd)


#管理员登陆日志
class Adminlog(db.Model):
    __tablename__ = 'adminlog'
    id = db.Column(db.Integer,primary_key=True)   #编号
    admin_id = db.Column(db.Integer,db.ForeignKey("admin.id"))   #所属管理员
    ip = db.Column(db.String(100))   #登陆IP
    addtime = db.Column(db.DateTime,index=True,default=datetime.now)  #登陆时间

    def __repr__(self):
        return "<Adminlog %r>" % self.id









